package cn.ike.dao.system;

import cn.ike.domain.system.Module;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ModuleDao {

    // 根据id查询
    Module findById(String moduleId);

    // 根据模块id查询是否有子模块
    Long findByModuleId(String moduleId);

    // 根据id删除
    void delete(String moduleId);

    // 添加
    void save(Module module);

    // 更新
    void update(Module module);

    // 查询全部
    List<Module> findAll();

    // 查询角色所拥有的权限
    List<Module> findModulByRoleId(String roleId);

    // 角色分配权限
    void updateRoleModule(@Param("roleId") String roleId, @Param("moduleIds") String moduleIds);

    // 删除角色已拥有的权限
    void deleteRoleModuleByRoleId(String roleId);

    // 根据用户等级查询所对应的模块
    List<Module> findByBelong(Integer belong);

    // 根据用户id查询权限
    List<Module> findModuleByUserId(String userId);
}